home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / stdio / RCS / sprintf.c,v < prev    next >
Text File  |  1991-12-02  |  7KB  |  379 lines

  1. head     1.10;
  2. branch   ;
  3. access   ;
  4. symbols  sprited:1.10.1;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.10
  10. date     90.10.19.15.23.05;  author kupfer;  state Exp;
  11. branches 1.10.1.1;
  12. next     1.9;
  13.  
  14. 1.9
  15. date     90.10.11.22.10.25;  author kupfer;  state Exp;
  16. branches ;
  17. next     1.8;
  18.  
  19. 1.8
  20. date     90.09.11.14.27.24;  author kupfer;  state Exp;
  21. branches ;
  22. next     1.7;
  23.  
  24. 1.7
  25. date     88.07.28.17.18.48;  author ouster;  state Exp;
  26. branches ;
  27. next     1.6;
  28.  
  29. 1.6
  30. date     88.07.28.16.41.17;  author ouster;  state Exp;
  31. branches ;
  32. next     1.5;
  33.  
  34. 1.5
  35. date     88.07.25.14.50.36;  author ouster;  state Exp;
  36. branches ;
  37. next     1.4;
  38.  
  39. 1.4
  40. date     88.07.25.14.12.02;  author ouster;  state Exp;
  41. branches ;
  42. next     1.3;
  43.  
  44. 1.3
  45. date     88.07.21.09.37.19;  author ouster;  state Exp;
  46. branches ;
  47. next     1.2;
  48.  
  49. 1.2
  50. date     88.07.11.16.02.26;  author ouster;  state Exp;
  51. branches ;
  52. next     1.1;
  53.  
  54. 1.1
  55. date     88.06.10.16.24.00;  author ouster;  state Exp;
  56. branches ;
  57. next     ;
  58.  
  59. 1.10.1.1
  60. date     91.12.02.20.02.54;  author kupfer;  state Exp;
  61. branches ;
  62. next     ;
  63.  
  64.  
  65. desc
  66. @@
  67.  
  68.  
  69. 1.10
  70. log
  71. @Include <sprite.h>.
  72. @
  73. text
  74. @/* 
  75.  * sprintf.c --
  76.  *
  77.  *    Source code for the "sprintf" library procedure.
  78.  *
  79.  * Copyright 1988 Regents of the University of California
  80.  * Permission to use, copy, modify, and distribute this
  81.  * software and its documentation for any purpose and without
  82.  * fee is hereby granted, provided that the above copyright
  83.  * notice appear in all copies.  The University of California
  84.  * makes no representations about the suitability of this
  85.  * software for any purpose.  It is provided "as is" without
  86.  * express or implied warranty.
  87.  */
  88.  
  89. #ifndef lint
  90. static char rcsid[] = "$Header: /sprite/src/lib/c/stdio/RCS/sprintf.c,v 1.9 90/10/11 22:10:25 kupfer Exp Locker: kupfer $ SPRITE (Berkeley)";
  91. #endif not lint
  92.  
  93. #include <stdio.h>
  94. #include <varargs.h>
  95. #include <cfuncproto.h>
  96. #include <sprite.h>        /* for Boolean typedef */
  97.  
  98. #ifndef lint
  99.  
  100. /* 
  101.  * Forward declarations:
  102.  */
  103. static void StringWriteProc _ARGS_((FILE *stream, Boolean flush));
  104.  
  105.  
  106. /*
  107.  *----------------------------------------------------------------------
  108.  *
  109.  * StringWriteProc --
  110.  *
  111.  *    This procedure is invoked when the "buffer" for the string
  112.  *    fills up.  Just give the string more space.
  113.  *
  114.  * Results:
  115.  *    None.
  116.  *
  117.  * Side effects:
  118.  *    The stream's "buffer" gets enlarged.
  119.  *
  120.  *----------------------------------------------------------------------
  121.  */
  122.  
  123. static void
  124. StringWriteProc(stream, flush)
  125.     register FILE *stream;
  126.     Boolean flush;        /* ignored */
  127. {
  128.     stream->writeCount = 5000;
  129. }
  130.  
  131. /*
  132.  *----------------------------------------------------------------------
  133.  *
  134.  * sprintf --
  135.  *
  136.  *    Format and print one or more values, placing the output into
  137.  *    a string.  See the manual page for details of how the format
  138.  *    string is interpreted.
  139.  *
  140.  * Results:
  141.  *    The return value is a pointer to string, which has been
  142.  *    overwritten with formatted information.
  143.  *
  144.  * Side effects:
  145.  *    None.
  146.  *
  147.  *----------------------------------------------------------------------
  148.  */
  149.  
  150. char *
  151. sprintf(va_alist)
  152.     va_dcl            /* char *string, then char *format, then any
  153.                  * number of additional values to be printed
  154.                  * in string under control of format. */
  155. {
  156.     char *string;
  157.     char *format;
  158.     FILE stream;
  159.     va_list args;
  160.  
  161.     va_start(args);
  162.     string = va_arg(args, char *);
  163.     format = va_arg(args, char *);
  164.     Stdio_Setup(&stream, 0, 1, (unsigned char *)string, 5000, (void (*)()) 0,
  165.         StringWriteProc, (int (*)()) 0, (ClientData) 0);
  166.     (void) vfprintf(&stream, format, args);
  167.     putc(0, &stream);
  168.     return string;
  169. }
  170. #else
  171. /* VARARGS2 */
  172. /* ARGSUSED */
  173. char *
  174. sprintf(string, format)
  175.     char *string;
  176.     char *format;
  177. {
  178.     return string;
  179. }
  180. #endif lint
  181. @
  182.  
  183.  
  184. 1.10.1.1
  185. log
  186. @Initial branch for Sprite server.
  187. @
  188. text
  189. @d17 1
  190. a17 1
  191. static char rcsid[] = "$Header: /sprite/src/lib/c/stdio/RCS/sprintf.c,v 1.10 90/10/19 15:23:05 kupfer Exp $ SPRITE (Berkeley)";
  192. @
  193.  
  194.  
  195. 1.9
  196. log
  197. @Lint.
  198. @
  199. text
  200. @d17 1
  201. a17 1
  202. static char rcsid[] = "$Header: /sprite/src/lib/c/stdio/RCS/sprintf.c,v 1.8 90/09/11 14:27:24 kupfer Exp Locker: kupfer $ SPRITE (Berkeley)";
  203. d23 1
  204. @
  205.  
  206.  
  207. 1.8
  208. log
  209. @Use function prototypes. Lint.
  210. @
  211. text
  212. @d17 1
  213. a17 1
  214. static char rcsid[] = "$Header: /sprite/src/lib/c/stdio/RCS/sprintf.c,v 1.7 88/07/28 17:18:48 ouster Exp Locker: kupfer $ SPRITE (Berkeley)";
  215. d29 1
  216. a29 1
  217. static void StringWriteProc _ARGS_((FILE *stream));
  218. d50 1
  219. a50 1
  220. StringWriteProc(stream)
  221. d52 1
  222. a85 1
  223.     extern void StringWriteProc();
  224. @
  225.  
  226.  
  227. 1.7
  228. log
  229. @More lint.
  230. @
  231. text
  232. @d17 1
  233. a17 1
  234. static char rcsid[] = "$Header: sprintf.c,v 1.6 88/07/28 16:41:17 ouster Exp $ SPRITE (Berkeley)";
  235. d22 1
  236. d25 6
  237. d90 2
  238. a91 2
  239.     Stdio_Setup(&stream, 0, 1, string, 5000, (void (*)()) 0,
  240.         StringWriteProc, (int (*)()) 0, (ClientData) 0);
  241. @
  242.  
  243.  
  244. 1.6
  245. log
  246. @Still cleaning stuff related to lint libraries.
  247. @
  248. text
  249. @d17 1
  250. a17 1
  251. static char rcsid[] = "$Header: sprintf.c,v 1.5 88/07/25 14:50:36 ouster Exp $ SPRITE (Berkeley)";
  252. d91 1
  253. @
  254.  
  255.  
  256. 1.5
  257. log
  258. @Lint.
  259. @
  260. text
  261. @d17 1
  262. a17 1
  263. static char rcsid[] = "$Header: sprintf.c,v 1.4 88/07/25 14:12:02 ouster Exp $ SPRITE (Berkeley)";
  264. d23 1
  265. a23 1
  266. #ifndef LINTLIB
  267. d98 1
  268. a98 1
  269. #endif LINTLIB
  270. @
  271.  
  272.  
  273. 1.4
  274. log
  275. @Generate more complete lint library information.
  276. @
  277. text
  278. @d17 1
  279. a17 1
  280. static char rcsid[] = "$Header: sprintf.c,v 1.3 88/07/21 09:37:19 ouster Exp $ SPRITE (Berkeley)";
  281. d23 2
  282. d26 14
  283. a39 1
  284.  * Forward references to procedure defined in this file:
  285. d42 6
  286. a47 2
  287. extern void    StringWriteProc();
  288.  
  289. a67 1
  290. #ifndef LINTLIB
  291. d78 1
  292. a98 24
  293.  
  294. /*
  295.  *----------------------------------------------------------------------
  296.  *
  297.  * StringWriteProc --
  298.  *
  299.  *    This procedure is invoked when the "buffer" for the string
  300.  *    fills up.  Just give the string more space.
  301.  *
  302.  * Results:
  303.  *    None.
  304.  *
  305.  * Side effects:
  306.  *    The stream's "buffer" gets enlarged.
  307.  *
  308.  *----------------------------------------------------------------------
  309.  */
  310.  
  311. static void
  312. StringWriteProc(stream)
  313.     register FILE *stream;
  314. {
  315.     stream->writeCount = 5000;
  316. }
  317. @
  318.  
  319.  
  320. 1.3
  321. log
  322. @Change to use vfprintf instead of _doprnt.
  323. @
  324. text
  325. @d17 1
  326. a17 1
  327. static char rcsid[] = "$Header: sprintf.c,v 1.2 88/07/11 16:02:26 ouster Exp $ SPRITE (Berkeley)";
  328. d49 1
  329. a49 1
  330.     /* VARARGS0 */
  331. d70 10
  332. @
  333.  
  334.  
  335. 1.2
  336. log
  337. @If using varargs, don't have any arguments preceding the va_alist.
  338. @
  339. text
  340. @d17 1
  341. a17 1
  342. static char rcsid[] = "$Header: sprintf.c,v 1.1 88/06/10 16:24:00 ouster Exp $ SPRITE (Berkeley)";
  343. d66 1
  344. a66 1
  345.     _doprnt(format, &args, &stream);
  346. @
  347.  
  348.  
  349. 1.1
  350. log
  351. @Initial revision
  352. @
  353. text
  354. @d17 1
  355. a17 1
  356. static char rcsid[] = "$Header: atoi.c,v 1.1 88/04/28 17:20:23 ouster Exp $ SPRITE (Berkeley)";
  357. d20 2
  358. a21 2
  359. #include "stdio.h"
  360. #include "varargs.h"
  361. d49 1
  362. d51 4
  363. a54 10
  364. sprintf(string, format, va_alist)
  365.     char *string;        /* Where to output formatted results.  Must
  366.                  * be large enough to accomodate all the
  367.                  * information that is generated. */
  368.     char *format;        /* Contains literal text and format control
  369.                  * sequences indicating how elements of
  370.                  * va_alist are to be printed.  See the
  371.                  * manual page for details. */
  372.     va_dcl            /* Variable number of values to be formatted
  373.                  * and printed. */
  374. d56 2
  375. d61 3
  376. a65 1
  377.     va_start(args);
  378. @
  379.